package com.leadership.training.entity.report;

import com.leadership.training.entity.course.Course;
import com.leadership.training.entity.project.ProjectPhaseCourse;

/**
 * 授课记录等报表
 * @author Rockett
 *
 */
public class TrainerCourseReport {

	/**
	 * 课程 id
	 */
	private Long id;
    /**
     * 课程编号
     */
    private String code;
    /**
     * 课程名称
     */
    private String name;
    /**
     * 课时
     */
    private Float hour;
    /**
     * 课程目标
     */
    private String target;
    /**
     * 课程性质
     */
    private String property;
    /**
     * 课程类别（管理类/专业通识类）
     */
    private String type;
    
    private String description;
    /**
     * 讲授次数
     */
    private int courseTime;
    
    private boolean disabled;
    
    /**讲师评分*/
    private String trainerSurveyResult;
    /**课程评分*/
    private String courseSurveyResult;
    /**建议*/
    private String surveySuggestion;
    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 讲师编号
     */
    private String trainerCode;
    /**
     * 讲师姓名
     */
    private String trainerName;
    
    /**
     * 讲师邮箱
     */
    private String trainerEmail;
    
    /**
     * 内容需求匹配度
     */
    private String piPeiDu;
    
    /**
     * 展示技巧
     */
    private String zsjq;
    
    /**
     * 内容理解深度
     */
    private String ljsd;
    
    /**
     * 讲师总体评分
     */
    private String zf;
    
    /**
     * 改进建议
     */
    private String gjjy;

    /* 项目课程数据已保存的id */
    private Long projectPhaseCourseId;

    /**
     * 
     */
    public TrainerCourseReport(){
    	this.disabled=false;
    }
    
    /**
     * 
     * @param projectPhaseCourse
     */
    public TrainerCourseReport(ProjectPhaseCourse projectPhaseCourse){
    	Course course = projectPhaseCourse.getCourse();
    	this.code=course.getCode();
    	this.courseSurveyResult=course.getCourseSurveyResult();
    	this.courseTime=course.getCourseTime();
    	this.description=course.getDescription();
    	this.disabled=course.isDisabled();
    	this.hour=course.getHour();
    	this.id=course.getId();
    	this.name=course.getName();
    	this.projectName=projectPhaseCourse.getProjectPhase().getProject().getName();
    	this.property=course.getProperty();
    	this.surveySuggestion=course.getSurveySuggestion();
    	this.target=course.getTarget();
    	this.trainerCode=projectPhaseCourse.getTrainer().getCode();
    	this.trainerEmail=projectPhaseCourse.getTrainer().getEmail();
    	if(projectPhaseCourse.getTrainer().getTrainerUserstatus() != null) {
    	    this.trainerName=projectPhaseCourse.getTrainer().getName()+projectPhaseCourse.getTrainer().getTrainerUserstatus();
    	} else {
    	    this.trainerName=projectPhaseCourse.getTrainer().getName();
    	}
    	
    	this.trainerSurveyResult=course.getTrainerSurveyResult();
    	this.type=course.getType();
    	
    }
    
    /**
     * 
     * @param projectPhaseCourse
     * @param trainerCourseReport
     */
    public TrainerCourseReport(ProjectPhaseCourse projectPhaseCourse, TrainerCourseReport trainerCourseReport){
    	Course course = projectPhaseCourse.getCourse();
    	this.code=course.getCode();
    	this.courseSurveyResult=course.getCourseSurveyResult();
    	this.courseTime=course.getCourseTime();
    	this.description=course.getDescription();
    	this.disabled=course.isDisabled();
    	this.hour=course.getHour();
    	this.id=course.getId();
    	this.name=course.getName();
    	this.projectName=projectPhaseCourse.getProjectPhase().getProject().getName();
    	this.property=course.getProperty();
    	this.surveySuggestion=course.getSurveySuggestion();
    	this.target=course.getTarget();
    	this.trainerCode=projectPhaseCourse.getTrainer().getCode();
    	this.trainerEmail=projectPhaseCourse.getTrainer().getEmail();
    	if(projectPhaseCourse.getTrainer().getTrainerUserstatus() != null) {
            this.trainerName=projectPhaseCourse.getTrainer().getName()+projectPhaseCourse.getTrainer().getTrainerUserstatus();
        } else {
            this.trainerName=projectPhaseCourse.getTrainer().getName();
        }
    	this.trainerSurveyResult=course.getTrainerSurveyResult();
    	this.type=course.getType();
    	this.piPeiDu = trainerCourseReport.getPiPeiDu();
		this.ljsd = trainerCourseReport.getLjsd();
		this.gjjy = trainerCourseReport.getGjjy();
		this.zf = trainerCourseReport.getZf();
		this.zsjq = trainerCourseReport.getZsjq();
		this.courseSurveyResult=trainerCourseReport.getCourseSurveyResult();
		this.trainerSurveyResult=trainerCourseReport.getTrainerSurveyResult();
		this.projectPhaseCourseId = projectPhaseCourse.getId();

    }
    /**
     * 
     * @param trainerCourseReport
     */
    public TrainerCourseReport(TrainerCourseReport trainerCourseReport) {
		this.piPeiDu = trainerCourseReport.getPiPeiDu();
		this.ljsd = trainerCourseReport.getLjsd();
		this.gjjy = trainerCourseReport.getGjjy();
		this.zf = trainerCourseReport.getZf();
		this.zsjq = trainerCourseReport.getZsjq();
		this.courseSurveyResult=trainerCourseReport.getCourseSurveyResult();
		this.trainerSurveyResult=trainerCourseReport.getTrainerSurveyResult();
	}
    
	/**
	 * @return the projectName
	 */
	public String getProjectName() {
		return projectName;
	}
	/**
	 * @param projectName the projectName to set
	 */
	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}
	/**
	 * @return the trainerCode
	 */
	public String getTrainerCode() {
		return trainerCode;
	}
	/**
	 * @param trainerCode the trainerCode to set
	 */
	public void setTrainerCode(String trainerCode) {
		this.trainerCode = trainerCode;
	}
	/**
	 * @return the trainerName
	 */
	public String getTrainerName() {
		return trainerName;
	}
	/**
	 * @param trainerName the trainerName to set
	 */
	public void setTrainerName(String trainerName) {
		this.trainerName = trainerName;
	}
	/**
	 * @return the trainerEmail
	 */
	public String getTrainerEmail() {
		return trainerEmail;
	}
	/**
	 * @param trainerEmail the trainerEmail to set
	 */
	public void setTrainerEmail(String trainerEmail) {
		this.trainerEmail = trainerEmail;
	}
	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}
	/**
	 * @return the code
	 */
	public String getCode() {
		return code;
	}
	/**
	 * @param code the code to set
	 */
	public void setCode(String code) {
		this.code = code;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the hour
	 */
	public Float getHour() {
		return hour;
	}
	/**
	 * @param hour the hour to set
	 */
	public void setHour(Float hour) {
		this.hour = hour;
	}
	/**
	 * @return the target
	 */
	public String getTarget() {
		return target;
	}
	/**
	 * @param target the target to set
	 */
	public void setTarget(String target) {
		this.target = target;
	}
	/**
	 * @return the property
	 */
	public String getProperty() {
		return property;
	}
	/**
	 * @param property the property to set
	 */
	public void setProperty(String property) {
		this.property = property;
	}
	/**
	 * @return the type
	 */
	public String getType() {
		return type;
	}
	/**
	 * @param type the type to set
	 */
	public void setType(String type) {
		this.type = type;
	}
	/**
	 * @return the description
	 */
	public String getDescription() {
		return description;
	}
	/**
	 * @param description the description to set
	 */
	public void setDescription(String description) {
		this.description = description;
	}
	/**
	 * @return the courseTime
	 */
	public int getCourseTime() {
		return courseTime;
	}
	/**
	 * @param courseTime the courseTime to set
	 */
	public void setCourseTime(int courseTime) {
		this.courseTime = courseTime;
	}
	/**
	 * @return the disabled
	 */
	public boolean isDisabled() {
		return disabled;
	}
	/**
	 * @param disabled the disabled to set
	 */
	public void setDisabled(boolean disabled) {
		this.disabled = disabled;
	}
	/**
	 * @return the trainerSurveyResult
	 */
	public String getTrainerSurveyResult() {
		return trainerSurveyResult;
	}
	/**
	 * @param trainerSurveyResult the trainerSurveyResult to set
	 */
	public void setTrainerSurveyResult(String trainerSurveyResult) {
		this.trainerSurveyResult = trainerSurveyResult;
	}
	/**
	 * @return the courseSurveyResult
	 */
	public String getCourseSurveyResult() {
		return courseSurveyResult;
	}
	/**
	 * @param courseSurveyResult the courseSurveyResult to set
	 */
	public void setCourseSurveyResult(String courseSurveyResult) {
		this.courseSurveyResult = courseSurveyResult;
	}
	/**
	 * @return the surveySuggestion
	 */
	public String getSurveySuggestion() {
		return surveySuggestion;
	}
	/**
	 * @param surveySuggestion the surveySuggestion to set
	 */
	public void setSurveySuggestion(String surveySuggestion) {
		this.surveySuggestion = surveySuggestion;
	}
	/**
	 * @return the piPeiDu
	 */
	public String getPiPeiDu() {
		return piPeiDu;
	}
	/**
	 * @return the zsjq
	 */
	public String getZsjq() {
		return zsjq;
	}
	/**
	 * @return the ljsd
	 */
	public String getLjsd() {
		return ljsd;
	}
	/**
	 * @param piPeiDu the piPeiDu to set
	 */
	public void setPiPeiDu(String piPeiDu) {
		this.piPeiDu = piPeiDu;
	}
	/**
	 * @param zsjq the zsjq to set
	 */
	public void setZsjq(String zsjq) {
		this.zsjq = zsjq;
	}
	/**
	 * @param ljsd the ljsd to set
	 */
	public void setLjsd(String ljsd) {
		this.ljsd = ljsd;
	}
	/**
	 * @return the gjjy
	 */
	public String getGjjy() {
		return gjjy;
	}
	/**
	 * @param gjjy the gjjy to set
	 */
	public void setGjjy(String gjjy) {
		this.gjjy = gjjy;
	}

	/**
	 * @return the zf
	 */
	public String getZf() {
		return zf;
	}

	/**
	 * @param zf the zf to set
	 */
	public void setZf(String zf) {
		this.zf = zf;
	}


	/**
	 * 获取 项目课程数据已保存的id
	 *
	 * @return projectPhaseCourseId 项目课程数据已保存的id
	 */
	public Long getProjectPhaseCourseId() {
		return this.projectPhaseCourseId;
	}

	/**
	 * 设置 项目课程数据已保存的id
	 *
	 * @param projectPhaseCourseId 项目课程数据已保存的id
	 */
	public void setProjectPhaseCourseId(Long projectPhaseCourseId) {
		this.projectPhaseCourseId = projectPhaseCourseId;
	}
}
